package jmine.tec.web.wicket.domain;

import java.math.BigDecimal;

import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

import bancosys.tec.persist.bussobj.PersistableBusinessObject;
import bancosys.tec.persist.persister.annotation.NaturalKey;
import bancosys.tec.utils.date.Date;

/**
 * Entidade utilizada para ser exibida em telas de consulta.
 * 
 * @author Rafael Volpato
 * @date Oct 4, 2011
 */
public class WebTestEntity extends PersistableBusinessObject {

    private Long pk;

    private String nome;

    private String mnemonico;

    private BigDecimal valor;

    private Date data;

    private Date dataFim;

    private WebTestEntity parent;

    /**
     * Construtor.
     */
    public WebTestEntity() {
        super();
    }

    /**
     * Construtor.
     * 
     * @param pk pk
     * @param nome nome
     * @param mnemonico mnemonico
     * @param valor valor
     * @param data data
     */
    public WebTestEntity(Long pk, String nome, String mnemonico, BigDecimal valor, Date data) {
        super();
        this.pk = pk;
        this.nome = nome;
        this.mnemonico = mnemonico;
        this.valor = valor;
        this.data = data;
    }

    /**
     * Construtor.
     * 
     * @param pk pk
     * @param nome nome
     * @param mnemonico mnemonico
     * @param valor valor
     * @param data data
     */
    public WebTestEntity(Long pk, String nome, String mnemonico, BigDecimal valor, Date data, Date dataFim) {
        super();
        this.pk = pk;
        this.nome = nome;
        this.mnemonico = mnemonico;
        this.valor = valor;
        this.data = data;
        this.dataFim = dataFim;
    }

    
    /**
     * @return the pk
     */
    @Override
    public Long getPk() {
        return this.pk;
    }

    /**
     * @param pk the pk to set
     */
    public void setPk(Long pk) {
        this.pk = pk;
    }

    /**
     * @return the nome
     */
    public String getNome() {
        return this.nome;
    }

    /**
     * @param nome the nome to set
     */
    public void setNome(String nome) {
        this.nome = nome;
    }

    /**
     * @return the mnemonico
     */
    @NaturalKey
    public String getMnemonico() {
        return this.mnemonico;
    }

    /**
     * @param mnemonico the mnemonico to set
     */
    public void setMnemonico(String mnemonico) {
        this.mnemonico = mnemonico;
    }

    /**
     * @return the valor
     */
    public BigDecimal getValor() {
        return this.valor;
    }

    /**
     * @param valor the valor to set
     */
    public void setValor(BigDecimal valor) {
        this.valor = valor;
    }

    /**
     * @return the data
     */
    public Date getData() {
        return this.data;
    }

    /**
     * @param data the data to set
     */
    public void setData(Date data) {
        this.data = data;
    }

    /**
     * @return the dataFim
     */
    public Date getDataFim() {
        return dataFim;
    }

    /**
     * @param dataFim the dataFim to set
     */
    public void setDataFim(Date dataFim) {
        this.dataFim = dataFim;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
    }

    /**
     * @return the parent
     */
    public WebTestEntity getParent() {
        return parent;
    }

    /**
     * @param parent the parent to set
     */
    public void setParent(WebTestEntity parent) {
        this.parent = parent;
    }
}
